package com.itzmn.newcode.offer1;

/**
 * @Author: 张梦楠
 * @Date: 2018/12/18 15:00
 * 简书：https://www.jianshu.com/u/d611be10d1a6
 * 码云：https://gitee.com/zhangqiye
 * @Description: 寻找旋转数组的最小值
 *
 * 把一个数组最开始的若干个元素搬到数组的末尾，我们称之为数组的旋转。 输入一个非减排序的数组的一个旋转，
 * 输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转，该数组的最小值为1。
 * NOTE：给出的所有元素都大于0，若数组大小为0，请返回0。
 *
 * 思路：
 * 因为后面的数值比前面的小，所以只需要找到比自己大的就行。
 */
public class _6_RotateTheMinimumValueOfTheArray {


    public static void main(String[] args) {

        new _6_RotateTheMinimumValueOfTheArray().test();
    }
    public void test(){

        int[] ints = {2, 3, 4, 5, 6};
        minNumberInRotateArray(ints);
    }

    public int minNumberInRotateArray(int [] array) {

        if (array.length==0){
            return 0;
        }
        int min = array[0];

        for (int i=array.length-1;i>0;i--){
            if (array[i]>min){
                if (i!=array.length-1){
                    min = array[i+1];
                    break;
                }
                if (i==array.length-1){
                    break;
                }
            }
        }
        System.out.println(min);
        return min;

    }
}
